home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / make.vim < prev    next >
Encoding:
Text File  |  2001-09-12  |  4.0 KB  |  108 lines

  1. " Vim syntax file
  2. " Language:    Makefile
  3. " Maintainer:    Claudio Fleiner <claudio@fleiner.com>
  4. " URL:        http://www.fleiner.com/vim/syntax/make.vim
  5. " Last Change:    2001 Sept 11
  6.  
  7. " For version 5.x: Clear all syntax items
  8. " For version 6.x: Quit when a syntax file was already loaded
  9. if version < 600
  10.   syntax clear
  11. elseif exists("b:current_syntax")
  12.   finish
  13. endif
  14.  
  15. " some special characters
  16. syn match makeSpecial    "^\s*[@-]\+"
  17. syn match makeNextLine    "\\$"
  18.  
  19. " some directives
  20. syn match makePreCondit    "^\s*\(ifeq\>\|else\>\|endif\>\|define\>\|endef\>\|ifneq\>\|ifdef\>\|ifndef\>\)"
  21. syn match makeInclude    "^\s*-\=s\=include"
  22. syn match makeStatement    "^\s*vpath"
  23. syn match makeExport   "^\s*\(export\|unexport\)\>"
  24. syn match makeOverride    "^\s*override"
  25. hi link makeOverride makeStatement
  26. hi link makeExport makeStatement
  27.  
  28. " Microsoft Makefile specials
  29. syn case ignore
  30. syn match makeInclude    "^!\s*include"
  31. syn match makePreCondit "!\s*\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|elseif\|else if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>"
  32. syn case match
  33.  
  34. " identifiers
  35. syn region makeIdent    start="\$(" skip="\\)\|\\\\" end=")" contains=makeStatement,makeIdent
  36. syn region makeIdent    start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement,makeIdent
  37. syn match makeIdent    "\$\$\w*"
  38. syn match makeIdent    "\$[^({]"
  39. syn match makeIdent    "^\s*\a\w*\s*[:+?!*]="me=e-2
  40. syn match makeIdent    "^\s*\a\w*\s*="me=e-1
  41. syn match makeIdent    "%"
  42.  
  43.  
  44. " make targets
  45. syn match makeSpecTarget    "^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>"
  46. syn match makeImplicit        "^\.[A-Za-z0-9_./\t -]\+\s*:[^=]"me=e-2
  47. syn match makeImplicit        "^\.[A-Za-z0-9_./\t -]\+\s*:$"me=e-1
  48. syn match makeTarget        "^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:[^=]"me=e-2 contains=makeIdent,makeSpecTarget
  49. syn match makeTarget        "^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:$"me=e-1 contains=makeIdent,makeSpecTarget
  50.  
  51. " Statements / Functions (GNU make)
  52. syn match makeStatement contained "(\(subst\|addprefix\|addsuffix\|basename\|call\|dir\|error\|filter-out\|filter\|findstring\|firstword\|foreach\|if\|join\|notdir\|origin\|patsubst\|shell\|sort\|strip\|suffix\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
  53.  
  54. " Errors
  55. syn match makeError    "^ \+\t"
  56. syn match makeError    "^ \{8\}[^ ]"me=e-1
  57. syn region makeIgnore    start="\\$" end="^." end="^$" contains=ALLBUT,makeError
  58.  
  59. " Comment
  60. syn region  makeComment    start="#" end="[^\\]$" contains=makeTodo
  61. syn match   makeComment    "#$" contains=makeTodo
  62. syn keyword makeTodo TODO FIXME XXX contained
  63.  
  64. " match escaped quotes and any other escaped character
  65. " except for $, as a backslash in front of a $ does
  66. " not make it a standard character, but instead it will
  67. " still act as the beginning of a variable
  68. " The escaped char is not highlightet currently
  69. syn match makeEscapedChar    "\\[^$]"
  70.  
  71.  
  72. syn region  makeDString start=+"+  skip=+\\.+  end=+"+  contains=makeIdent
  73. syn region  makeSString start=+'+  skip=+\\.+  end=+'+  contains=makeIdent
  74. syn region  makeBString start=+`+  skip=+\\.+  end=+`+  contains=makeIdent,makeSString,makeDString,makeNextLine
  75.  
  76. " Define the default highlighting.
  77. " For version 5.7 and earlier: only when not done already
  78. " For version 5.8 and later: only when an item doesn't have highlighting yet
  79. if version >= 508 || !exists("did_make_syn_inits")
  80.   if version < 508
  81.     let did_make_syn_inits = 1
  82.     command -nargs=+ HiLink hi link <args>
  83.   else
  84.     command -nargs=+ HiLink hi def link <args>
  85.   endif
  86.  
  87.   HiLink makeNextLine    makeSpecial
  88.   HiLink makeSpecTarget    Statement
  89.   HiLink makeImplicit    Function
  90.   HiLink makeTarget        Function
  91.   HiLink makeInclude        Include
  92.   HiLink makePreCondit    PreCondit
  93.   HiLink makeStatement    Statement
  94.   HiLink makeIdent        Identifier
  95.   HiLink makeSpecial        Special
  96.   HiLink makeComment        Comment
  97.   HiLink makeDString        String
  98.   HiLink makeSString        String
  99.   HiLink makeBString        Function
  100.   HiLink makeError        Error
  101.   HiLink makeTodo        Todo
  102.   delcommand HiLink
  103. endif
  104.  
  105. let b:current_syntax = "make"
  106.  
  107. " vim: ts=8
  108.